package com.example.questionnaire.mbg.mapper;

import com.example.questionnaire.mbg.entity.Questionnaire;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface QuestionnaireMapper {

    int create(Questionnaire questionnaire);

    List<Questionnaire> list(@Param("uid") int uid, @Param("offset") int offset, @Param("pageSize") int pageSize);

    List<Questionnaire> listInTrash(@Param("uid") int uid, @Param("offset") int offset, @Param("pageSize") int pageSize);

    void publish(@Param("qnid") int qnid, @Param("published") Date published);

    void close(@Param("qnid") int qnid);

    void remove(@Param("qnid") int qnid);

    void restore(@Param("qnid") int qnid);

    Questionnaire get(@Param("qnid") int qnid);

    void incReceiveCnt(@Param("qnid") int qnid);

    void update(Questionnaire questionnaire);

    boolean exist(String encodedId);

    void setEncodedId(int qnid, String encodedId);

    Questionnaire getEncoded(String encodedId);

    void check(Date date);
}